解析深度学习:3 个经典的卷积神经网络案例分析
极市平台是专业的视觉算法开发和分发平台,加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
来源:人工智能头条
原文来源于魏秀参博士的《解析深度学习:卷积神经网络原理与视觉实践》,本书由周志华老师作序推荐:“市面上深度学习书籍已不少,但专门针对卷积神经网络展开,侧重实践有不失论释者尚不多见。本书基本覆盖了卷积神经网络实践所有涉及环节,作者交代的若干新的技巧亦可一观,读者在实践中或有见益。”
本文将以 Alex-Net、VGG-Nets、Network-In-Network 为例,分析几类经典的卷积神经网络案例。
在此请读者注意,此处的分析比较并不是不同网络模型精度的“较量”,而是希望读者体会卷积神经网络自始至今的发展脉络和趋势。
这样会更有利于对卷积神经网络的理解,进而举一反三,提高解决真实问题的能力。
01 Alex-Net 网络模型
Alex-Net 是计算机视觉领域中首个被广泛关注并使用的卷积神经网络,特别是 Alex-Net 在 2012 年 ImageNet 竞赛 中以超越第二名 10.9个百分点的优异成绩一举夺冠,从而打响了卷积神经网络乃至深度学习在计算机视觉领域中研究热潮的“第一枪”。
Alex-Net 由加拿大多伦多大学的 Alex Krizhevsky、Ilya Sutskever(G. E. Hinton 的两位博士生)和 Geoffrey E. Hinton 提出,网络名“Alex-Net”即 取自第一作者名。
关于 Alex-Net 还有一则八卦:由于 Alex-Net 划时代的意义,并由此开启了深度学习在工业界的应用。
2015 年 Alex 和 Ilya 两位作者连同“半个”Hinton 被 Google 重金(据传高达 3500 万美金)收买。
但为何说“半个”Hinton? 只因当时 Hinton 只是花费一半时间在 Google 工作,而 另一半时间仍然留在多伦多大学。
下图所示是 Alex-Net 的网络结构,共含五层卷积层和三层全连接层。其中,Alex-Net 的上下两支是为方便同时使用两片 GPU 并行训练,不过在第三层卷积和全连接层处上、下两支信息可交互。
由于两支网络完全一致, 在此仅对其中一支进行分析。下表列出了 Alex-Net 网络的架构及具体参数。
单在网络结构或基本操作模块方面,Alex-Net 的改进非常微小,构建网络的基本思路变化不大,仅在网络深度、复杂度上有较大优势。
图1 Alex-Net 网络结构
Alex-Net 网络架构及参数
不过仍需指出 Alex-Net 的几点重大贡献,正因如此,Alex-Net 方可在整个卷积神经网络甚至连接主义机器学习发展进程中占据里程碑式的地位。
Alex-Net 首次将卷积神经网络应用于计算机视觉领域的海量图像数 据集 ImageNet(该数据集共计 1000 类图像,图像总数约 128 多 万张),揭示了卷积神经网络拥有强大的学习能力和表示能力。
另一方面,海量数据同时也使卷积神经网络免于过拟合。可以说二者相辅相成,缺一不可。自此便引发了深度学习,特别是卷积神经网络在计算机视觉领域中“井喷”式的研究。
利用 GPU 实现网络训练。在上一轮神经网络研究热潮中,由于计算资源发展受限,研究者无法借助更加高效的计算手段(如 GPU),这也较大程度地阻碍了当时神经网络的研究进程。
“工欲善其事,必先利其器”,在 Alex-Net 中,研究者借助 GPU 将原本需数周甚至数月的网络训练过程大大缩短至 5~6 天。
在揭示卷积神经网络强大能力的同时,这无疑也大大缩短了深度网络和大型网络模型开发研究的周期并降低了时间成本。缩短了迭代周期,正是得益于此,数量繁多、立意新颖的网络模型和应用才能像雨后春笋一般层出不穷。
一些训练技巧的引入使“不可为”变成“可为”,甚至是“大有可为”。如 ReLU 激活函数、局部响应规范化操作、为防止过拟合而采取的数据增广(data augmentation)和随机失活(dropout)等。
这些训练技巧不仅保证了模型性能,更重要的是为后续深度卷积神经网络的构建提供了范本。实际上,此后的卷积神经网络大体都遵循这一网络构建的基本思路。
局部响应规范化(LRN)要求对相同空间位置上相邻深度(adjacent depth)的卷积结果做规范化。
假设 adi,j 为第 d 个通道的卷积核在 (i, j) 位置处的输出结果(即响应),随后经过 ReLU 激活函数的作用,其局部响应规范化的结果 bdi,j 可表示为:
其中,n 指定了使用 LRN 的相邻深度卷积核数目,N 为该层所有卷积核数目。k、n、α、β 等为超参数,需通过验证集进行选择,在原始 Alex-Net中这些参数的具体赋值如上表所示。
使用 LRN 后,在 ImageNet 数据集上Alex-Net 的性能分别在 top-1 和 top-5 错误率上降低了 1.4% 和 1.2%;此外,一个四层的卷积神经网络使用 LRN 后,在 CIFAR-10 数据上的错误率也从 13% 降至 11%。
LRN 目前已经作为各个深度学习工具箱的标准配置,将 k、n、α、β等超参数稍做改变即可实现其他经典规范化操作。如当 “k = 0,n = N,α = 1,β = 0.5”时便是经典的 l2 规范化:
02 VGG-Nets 网络模型
VGG-Nets 由英国牛津大学著名研究组 VGG(VisualGeometryGroup) 提出,是 2014 年 ImageNet 竞赛定位任务 (localization task) 第一名和分类 任务第二名做法中的基础网络。
由于 VGG-Nets 具备良好的泛化性能,因而其在 ImageNet 数据集上的预训练模型(pre-trained model)被广泛应用于 除最常用的特征抽取 (feature extractor)外的诸多问题。
如物体候选框 (object proposal) 生成、细粒度图像定位与检索 (fine-grained object localization and image retrieval)、图像协同定位 (co-localization) 等。
以 VGG-Nets 中的代表 VGG-16 为例,下表列出了其每层具体参数信息。
可以发现,相比 Alex-Net,VGG-Nets 中普遍使用了小卷积核以及“保持输入大小”等技巧,为的是在增加网络深度 (即网络复杂度) 时确保各层输入大小随深度增加而不急剧减小。
同时,网络卷积层的通道数 (channel) 也从 3 → 64 → 128 → 256 → 512 逐渐增加。
VGG-16 网络架构及参数
03 Network-In-Network
Network-In-Network(NIN) 是由新加坡国立大学 LV 实验室提出的异于传统卷积神经网络的一类经典网络模型,它与其他卷积神经网络的最大差异是用多层感知机(多层全连接层和非线性函数的组合)替代了先前卷积网络中简单的线性卷积层,如下图所示。
我们知道,线性卷积层的复杂度有限,利用线性卷积进行层间映射也只能将上层特征或输入进行
“简单”的线性组合形成下层特征。而 NIN 采用了复杂度更高的多层感知机 作为层间映射形式,这一方面提供了网络层间映射的一种新可能。
另一方面增加了网络卷积层的非线性能力,使得上层特征可以更复杂地被映射到下层,这样的想法也被后期出现的残差网络和 Inception 等网络模型所借鉴。
图2 传统卷积模块(a)与 NIN 网络卷积模块(b)
同时,NIN 网络模型的另一个重大突破是摒弃了全连接层作为分类层的传统,转而改用全局汇合操作(global average pooling),如下图所示。
NIN最后一层共有 C 张特征图(feature map),分别对应分类任务的 C 个类别。全局汇合操作分别作用于每张特征图,最后将汇合结果映射到样本真实标 记。
可以发现,在这样的标记映射关系下,C 张特征图上的响应将很自然地分别对应到 C 个不同的样本类别,这也是相对先前卷积网络来讲,NIN 在模型可解释性上的一个优势。
图3 NIN 网络模型整体结构
此示例中的 NIN 堆叠了三个多层感知机卷积层模块和一个全局汇合操作层作为分类层
*推荐文章*
每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击左下角“阅读原文”立刻申请入群~